{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2023-12-01T07:52:07.122042100Z",
     "start_time": "2023-12-01T07:52:06.067896700Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "        景点名称   热度                                                 地址   评分  \\\n0   长隆野生动物世界  9.2  \\r\\n广州市番禺区大石镇105国道大石段593号                          4.7   \n1        广州塔  8.6         \\r\\n广州市海珠区阅江西路222号                          4.5   \n2  广州长隆国际大马戏  8.4        \\r\\n广州市番禺区汉溪大道东299号                          4.7   \n3     长隆欢乐世界  8.2        \\r\\n广州市番禺区汉溪大道东299号                          4.7   \n4         沙面  7.8               \\r\\n广州市荔湾区沙面                          4.6   \n5       珠江夜游  7.7         \\r\\n具体登船地点请留意各航班信息                          4.5   \n6    广州长隆度假区  7.5     \\r\\n广东省广州市番禺区汉溪大道东299号                          4.7   \n7     广东省博物馆  7.5       \\r\\n广州市天河区珠江新城珠江东路2号                          4.7   \n8     长隆水上乐园  7.4        \\r\\n广州市番禺区汉溪大道东299号                          4.7   \n9     广东科学中心  7.3       \\r\\n广州市番禺区大学城科普路168号                          4.6   \n\n           星级                                             评论数  \\\n0  width:90%;  \\r\\n                                (55029条点评)   \n1  width:90%;  \\r\\n                                (32122条点评)   \n2  width:90%;  \\r\\n                                (16107条点评)   \n3  width:90%;  \\r\\n                                (21243条点评)   \n4  width:90%;   \\r\\n                                (6212条点评)   \n5  width:90%;   \\r\\n                                (7108条点评)   \n6  width:90%;   \\r\\n                                (2154条点评)   \n7  width:90%;   \\r\\n                                (1486条点评)   \n8  width:90%;  \\r\\n                                (14437条点评)   \n9  width:90%;   \\r\\n                                (8708条点评)   \n\n                                                  评论  \n0  小朋友非常喜欢这次行程，坐小火车和空中缆车都很开心。非常喜欢熊猫4D影院的电影，看了两次。还...  \n1  六百米高的广州塔是中国最高的塔，位于广州市中心的珠江南岸，塔身主体高454米，天线桅杆高14...  \n2  广州长隆国际大马戏了！表演全场都非常精彩，没有尿点！舞台效果和灯光超震撼，高空惊险刺激的表演...  \n3  性价比很高的一个游乐园，游乐设施齐全，园内也有很多表演，跟朋友一起玩的特别开心。去的时候人少...  \n4  沙面曾称拾翠洲，因为是珠江冲积而成的沙洲，故名沙面。 沙面位于广东省广州市市区西南部，南濒珠...  \n5  珠江夜游算是去广州必打卡的，夜游的时间大概一个小时左右。可以感受现代化的广州城市的建设和风光...  \n6  长隆度假区里面玩的东西还是挺多的 有长隆水上世界 长隆野生动物园 长隆飞鸟乐园 长隆欢乐世界...  \n7  广东省博物馆位于中国广东省广州市天河区珠江东路2号，广州新城市中轴线珠江新城中心区南部，19...  \n8  长隆真的是一个好玩的地方，欢乐世界、水上乐园都很好玩。这次去广州就玩了水上世界，有机会会再来...  \n9  科学中心很大，很适合给孩子科普，一天时间逛不完，可以选择一些馆慢慢逛，有机会还要再去一次，这...  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>景点名称</th>\n      <th>热度</th>\n      <th>地址</th>\n      <th>评分</th>\n      <th>星级</th>\n      <th>评论数</th>\n      <th>评论</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>长隆野生动物世界</td>\n      <td>9.2</td>\n      <td>\\r\\n广州市番禺区大石镇105国道大石段593号</td>\n      <td>4.7</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (55029条点评)</td>\n      <td>小朋友非常喜欢这次行程，坐小火车和空中缆车都很开心。非常喜欢熊猫4D影院的电影，看了两次。还...</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>广州塔</td>\n      <td>8.6</td>\n      <td>\\r\\n广州市海珠区阅江西路222号</td>\n      <td>4.5</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (32122条点评)</td>\n      <td>六百米高的广州塔是中国最高的塔，位于广州市中心的珠江南岸，塔身主体高454米，天线桅杆高14...</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>广州长隆国际大马戏</td>\n      <td>8.4</td>\n      <td>\\r\\n广州市番禺区汉溪大道东299号</td>\n      <td>4.7</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (16107条点评)</td>\n      <td>广州长隆国际大马戏了！表演全场都非常精彩，没有尿点！舞台效果和灯光超震撼，高空惊险刺激的表演...</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>长隆欢乐世界</td>\n      <td>8.2</td>\n      <td>\\r\\n广州市番禺区汉溪大道东299号</td>\n      <td>4.7</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (21243条点评)</td>\n      <td>性价比很高的一个游乐园，游乐设施齐全，园内也有很多表演，跟朋友一起玩的特别开心。去的时候人少...</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>沙面</td>\n      <td>7.8</td>\n      <td>\\r\\n广州市荔湾区沙面</td>\n      <td>4.6</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (6212条点评)</td>\n      <td>沙面曾称拾翠洲，因为是珠江冲积而成的沙洲，故名沙面。 沙面位于广东省广州市市区西南部，南濒珠...</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>珠江夜游</td>\n      <td>7.7</td>\n      <td>\\r\\n具体登船地点请留意各航班信息</td>\n      <td>4.5</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (7108条点评)</td>\n      <td>珠江夜游算是去广州必打卡的，夜游的时间大概一个小时左右。可以感受现代化的广州城市的建设和风光...</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>广州长隆度假区</td>\n      <td>7.5</td>\n      <td>\\r\\n广东省广州市番禺区汉溪大道东299号</td>\n      <td>4.7</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (2154条点评)</td>\n      <td>长隆度假区里面玩的东西还是挺多的 有长隆水上世界 长隆野生动物园 长隆飞鸟乐园 长隆欢乐世界...</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>广东省博物馆</td>\n      <td>7.5</td>\n      <td>\\r\\n广州市天河区珠江新城珠江东路2号</td>\n      <td>4.7</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (1486条点评)</td>\n      <td>广东省博物馆位于中国广东省广州市天河区珠江东路2号，广州新城市中轴线珠江新城中心区南部，19...</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>长隆水上乐园</td>\n      <td>7.4</td>\n      <td>\\r\\n广州市番禺区汉溪大道东299号</td>\n      <td>4.7</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (14437条点评)</td>\n      <td>长隆真的是一个好玩的地方，欢乐世界、水上乐园都很好玩。这次去广州就玩了水上世界，有机会会再来...</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>广东科学中心</td>\n      <td>7.3</td>\n      <td>\\r\\n广州市番禺区大学城科普路168号</td>\n      <td>4.6</td>\n      <td>width:90%;</td>\n      <td>\\r\\n                                (8708条点评)</td>\n      <td>科学中心很大，很适合给孩子科普，一天时间逛不完，可以选择一些馆慢慢逛，有机会还要再去一次，这...</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import requests\n",
    "from lxml import etree\n",
    "import pandas as pd\n",
    "\n",
    "headers = {\n",
    "    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.69'\n",
    "}\n",
    "\n",
    "url = 'https://you.ctrip.com/sight/guangzhou152/s0-p1.html'\n",
    "response = requests.get(url, headers=headers)\n",
    "html = response.text\n",
    "html_doc = etree.HTML(html)\n",
    "div = html_doc.xpath('/html/body/div[2]/div[2]/div[4]/div/div[2]/div/div[3]')[0]\n",
    "div_list = div.xpath('.//div[@class=\"list_mod2\"]')\n",
    "data = []\n",
    "for i in div_list:\n",
    "    info = i.xpath('./div[@class=\"rdetailbox\"]')[0]\n",
    "    name = info.xpath('./dl/dt/a[1]/text()')[0]\n",
    "    heat = info.xpath('./dl/dt/a[2]/b[2]/text()')[0]\n",
    "    address = info.xpath('./dl/dd[@class=\"ellipsis\"]/text()')[0]\n",
    "    score = info.xpath('./ul/li[1]/a/strong/text()')[0]\n",
    "    star_level = info.xpath('./ul/li[2]/span/span/@style')[0]\n",
    "    number_of_comments = info.xpath('./ul/li[3]/a/text()')[0]\n",
    "    comment = i.xpath('./p/text()')[1]\n",
    "    data.append([name, heat, address, score, star_level, number_of_comments, comment])\n",
    "df = pd.DataFrame(data, columns=['景点名称', '热度', '地址', '评分', '星级', '评论数', '评论'])\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "import requests\n",
    "import time\n",
    "import json\n",
    "import hashlib\n",
    "from urllib import parse\n",
    "\n",
    "\n",
    "def get_location_info(address_str):\n",
    "    # 以get请求为例http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=你的ak\n",
    "    queryStr = '/geocoding/v3/?address=%s&city=广州市&output=json&ak=GRjP1nuygNMvCckIQjKTcm7oi596zHaa' % address_str\n",
    "    # 对queryStr进行转码，safe内的保留字符不转换\n",
    "    encodedStr = parse.quote(queryStr, safe=\"/:=&?#+!$,;'@()*[]\")\n",
    "    # 在最后直接追加上sk\n",
    "    rawStr = encodedStr + '8RKjx25ZP1g4pYQq98sqKGlHvg4DlEZT'\n",
    "    #计算sn\n",
    "    sn = (hashlib.md5(parse.quote_plus(rawStr).encode(\"utf8\")).hexdigest())\n",
    "    #由于URL里面含有中文，所以需要用parse.quote进行处理，然后返回最终可调用的url\n",
    "    url = parse.quote(\"http://api.map.baidu.com\" + queryStr + \"&sn=\" + sn, safe=\"/:=&?#+!$,;'@()*[]\")\n",
    "    res = requests.get(url, headers={\"content-type\": \"application/json\"})\n",
    "\n",
    "    return res.content.decode()\n",
    "\n",
    "\n",
    "def handle_location_info(json_data):\n",
    "    data = json.loads(json_data)\n",
    "    result = data.get('result',{})\n",
    "    location_info = result.get('location',{})\n",
    "    location = location_info.get('lng','') + ',' + location_info.get('lat','')\n",
    "    return location"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "415836f49cee9de8"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
